﻿using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;

namespace WFinger.Common
{
	/// <summary>
	/// WEB信息
	/// </summary>
	public class ServerInfo
	{
		/// <summary>
		/// 取得网站的根目录的URL
		/// </summary>
		/// <returns></returns>
		public static string GetRootURI()
		{
			string AppPath = "";
			HttpContext HttpCurrent = HttpContext.Current;
			HttpRequest Req;
			if (HttpCurrent != null)
			{
				try
				{
					Req = HttpCurrent.Request;

					string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority);
					if (Req.ApplicationPath == null || Req.ApplicationPath == "/")
						//直接安装在   Web   站点   
						AppPath = UrlAuthority;
					else
						//安装在虚拟子目录下   
						AppPath = UrlAuthority + Req.ApplicationPath;
				}
				catch { }
			}
			return AppPath;
		}
		/// <summary>
		/// 取得网站的根目录的URL
		/// </summary>
		/// <param name="Req"></param>
		/// <returns></returns>
		public static string GetRootURI(HttpRequest Req)
		{
			string AppPath = "";
			if (Req != null)
			{
				string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority);
				if (Req.ApplicationPath == null || Req.ApplicationPath == "/")
					//直接安装在   Web   站点   
					AppPath = UrlAuthority;
				else
					//安装在虚拟子目录下   
					AppPath = UrlAuthority + Req.ApplicationPath;
			}
			return AppPath;
		}
		/// <summary>
		/// 取得网站根目录的物理路径
		/// </summary>
		/// <returns></returns>
		public static string GetRootPath()
		{
			string AppPath = "";
			HttpContext HttpCurrent = HttpContext.Current;
			if (HttpCurrent != null)
			{
				AppPath = HttpCurrent.Server.MapPath("~");
			}
			else
			{
				AppPath = AppDomain.CurrentDomain.BaseDirectory;
				AppPath = AppPath.TrimEnd('\\');
			}
			return AppPath;
		}
		/// <summary>
		/// 端口
		/// </summary>
		public static string ServerPort
		{
			get
			{
				string paths = null;
				if (HttpContext.Current == null)
				{
					paths = System.Threading.Thread.CurrentThread.Name;
				}
				else
				{
					paths = HttpContext.Current.Request.ServerVariables["Server_Port"].ToString();
				}
				return paths;
			}
		}
	}
}
